package com.ly.hotel.adaptor;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;

import com.ly.hotel.board.ADA628.TvChannelAda628;
//import com.ly.hotel.board.ADA801.TvChannelAda801;
import com.ly.hotel.common.Constants;
import com.ly.hotel.model.LiveManagement;
import com.ly.hotel.util.LanguageUtil;

import android.os.Build;
import android.util.Log;

/**
 * @author Administrator 与电视有关的工具
 */
public class AtvUtil {

	public static List<LiveManagement> getTvlistFromLlocal() throws NumberFormatException, IOException {
		List<LiveManagement> list = null;
		
		if(Build.BOARD.endsWith(Constants.BOARD_TYPE_ADA628_NAME)){
			list = TvChannelAda628.getTvlistFromLlocal();
		}
		return list;
	}

	
	//本spa有两个列表，一个是给程序自己用的，带有电视节目的中文名称，一个是给ADA801和ADA628电视用的，且两个的格式有所不同
	public static void updateChannelList(List<LiveManagement> m_list){
		String TV_LIST_FILE_PATH_ADA801 = "/data/data/com.ly.hotel/files/list";
		String TV_LIST_FILE_PATH_ADA628 = "/data/openfiles2share/TvChannel";//"/data/data/com.mstar.tv.tvplayer.ui/list/TvChannel";
		String TV_LIST_FILE_PATH_6A648  = "/data/local/list.txt";
		/********************注意*****************************/
		/**************历史性的bug****************************/
		/*******在后台传过来的频率是频率*100的****************/
		/**********正确是要1000才对，为了兼容，就不改了*********/
		/************628的一定要补上0！！！！！****************/
		
		try {
			if(Build.BOARD.equals(Constants.BOARD_TYPE_ADA801_NAME)){
				File ff = new File(TV_LIST_FILE_PATH_ADA801);//由于电视的接口有问题，超过32个字符的电视节目会有花屏或者声音沙的问题出现，所有要另存一个没有界面名称的文件供电视接口使用ff.createNewFile();
				FileWriter fww = new FileWriter(TV_LIST_FILE_PATH_ADA801);
	
				for (LiveManagement lm : m_list) {
					//如果628和801混合使用，两者的频点是不一样的，这样会导致花屏，所以，使用列表中的extend字段来设置801主板的主频
					//格式是801Freq:XXXX,XXXX是频率
					//此处加入了648 和 801 同样的文件路径
					if(lm.getExtend().startsWith("801Freq:")){
						String freq = lm.getExtend().replace("801Freq:", "");
						fww.write(lm.getPosition() + "-" + "name" + "-" + freq + "-" + lm.getZhishi()
								+ "-" + lm.getRadioZhishi() + "\r\n");
					} else {
						fww.write(lm.getPosition() + "-" + "name" + "-" + lm.getFreq() + "-" + lm.getZhishi()
								+ "-" + lm.getRadioZhishi() + "\r\n");
					}
				}
	
				fww.close();
			}else if(Build.BOARD.equals(Constants.BOARD_TYPE_ADA628_NAME)){
				File ff = new File(TV_LIST_FILE_PATH_ADA628);//由于电视的接口有问题，超过32个字符的电视节目会有花屏或者声音沙的问题出现，所有要另存一个没有界面名称的文件供电视接口使用ff.createNewFile();
				FileWriter fww = new FileWriter(TV_LIST_FILE_PATH_ADA628);
	
				int j=0;
				for (LiveManagement lm : m_list) {
						fww.write((j++) + "@" + "L-"+j + "@" + lm.getZhishi()
								+ "@" + lm.getRadioZhishi()+ "@" + Integer.parseInt(lm.getFreq())*10 + "@0"   + "\r\n");
						Log.i("AtvUtil", j + "@" + "L-"+j + "@" + lm.getZhishi()
								+ "@" + lm.getRadioZhishi() + "@" + Integer.parseInt(lm.getFreq())*10 + "@0");
				}
	
				fww.close();
				
				  
			} else if(Build.BOARD.equals(Constants.BOARD_TYPE_6A648_NAME) ||
					Build.BOARD.equals(Constants.BOARD_TYPE_ADA648_NAME)){
				File ff = new File(TV_LIST_FILE_PATH_6A648);
				/*File fff = new File("/data/data/tufer.com.menutest/files");
				if(fff.exists()){
					Log.i("deBug", "目录存在");
				}else{
					Log.i("deBug", "目录不存在");
					fff.mkdirs();
				}*/
				/*if (!ff.exists()){	//若此目录不存在，则创建之
					ff.mkdirs();
				}
				File ff1 = new File(ff,"list.txt");*/
				FileWriter fww = new FileWriter(ff);
	
				for (LiveManagement lm : m_list) {			//648频道名称
					String n = LanguageUtil.getTextFromLocalLanguage(lm.getName());
					fww.write((lm.getPosition() - 1) + "@" + n + "@" + lm.getFreq() + "\r\n");
				}
	
				fww.close();
				ff.setReadable(true, false);
			}
		} catch (IOException e) {
			Log.i("deBug", "存储出错了:" + e);
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
}
